package com.zw.mes.module.verify.service;


import com.zw.mes.constant.Constant;
import com.zw.mes.module.prodtaskmanager.entity.BaseData;
import com.zw.mes.module.system.service.LogService;
import com.zw.mes.module.verify.mapper.VerifyMapper;
import com.zw.mes.module.verify.model.OrgModel;
import com.zw.mes.module.verify.model.VerifyInfoModel;
import org.springframework.beans.factory.annotation.Autowired;

import static com.zw.mes.constant.Constant.STATUS_NORMAL;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @className: VerifyService
 * @description: 自定义审核流程业务逻辑层
 * @author： 徐一贺 18341916590
 * @date： 2021/4/10 15:34
 * @office: 智能控制设计科
 * @research institute： 智能控制设计所
 * @department： 机械设计院
 * @company: 辽宁忠旺机械设备制造有限公司
 * @group： 忠旺集团
 * @version: 1.0
 */
@Service
public class VerifyService {
    @Autowired
    private VerifyMapper mapper;
    @Autowired
    private LogService logService;

    /**
     * @methodName: findBaseDataByBadaTyp
     * @description: 根据 badaTyp 获取未删除的数据
     * @param: badaTyp
     * @return： java.util.List<com.zw.mes.module.prodtaskmanager.entity.BaseData>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/10 16:41
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    public List<BaseData> findBaseDataByBadaTyp(String badaTyp) {
        return mapper.findBaseDataByBadaTyp(badaTyp);
    }

    /**
     * @methodName: selectOrgList
     * @description: 获取权限架构表
     * @param: name
     * @return： java.util.List<com.zw.mes.module.verify.model.OrgModel>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 8:24
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    public List<OrgModel> selectOrgList(String name) {
        return mapper.selectOrgList(name);
    }

    /**
     * @methodName: findOrgByName
     * @description: 部门名称唯一验证
     * @param: name
     * @return： com.zw.mes.module.verify.model.OrgModel
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 8:46
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    public OrgModel findOrgByName(String name) {
        return mapper.findByName(name);
    }

    /**
     * 修改部门
     */
    @Transactional(rollbackFor = Exception.class)
    public int updateOrg(OrgModel org) {
        org.setStatus(STATUS_NORMAL);
        logService.saveLog("修改审核架构", "");
        return mapper.update(org);
    }

    /**
     * 保存
     *
     * @param
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public int saveOrg(OrgModel org) {
        org.setStatus(STATUS_NORMAL);
        logService.saveLog("保存审核架构", "");
        return mapper.save(org);
    }


    /**
     * 删除
     */
    @Transactional(rollbackFor = Exception.class)
    public int delOrg(Integer id) {
        logService.saveLog("删除审核架构", "");
        return mapper.updateStatusByIdWithRecursion(id, Constant.STATUS_DELETE);
    }

    /**
     * 条件查询列表
     */
    public List<VerifyInfoModel> findByCondition(VerifyInfoModel verify) {
        return mapper.findByCondition(verify);
    }

    /**
     * 保存审核流程
     */
    @Transactional(rollbackFor = Exception.class)
    public int saveVerify(VerifyInfoModel verify) {
        logService.saveLog("添加审核配置", "");
        return mapper.saveVerify(verify);
    }

    /**
     * 更新审核流程
     */
    @Transactional(rollbackFor = Exception.class)
    public int updateVerify(VerifyInfoModel verify) {
        logService.saveLog("更新审核配置", "");
        return mapper.updateVerify(verify);
    }

    /**
     * @methodName: selectLevel
     * @description: 获取审核级别
     * @param:
     * @return： java.util.List<com.zw.mes.module.verify.model.VerifyInfoModel>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 9:50
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    public List<BaseData> selectLevel() {
        return mapper.selectLevel();
    }
}
